home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
computes-gazette-sid-collections
/
CGSC
/
00_SIDfests
/
SIDfest '87 (Columbus, OH) -- All-American SIDs.d64
/
sidpic v2.5
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
11KB
|
215 lines
10 POKE52,PEEK(46)+6:POKE56,PEEK(52):CLR
12 A1$="ABCDEFGHIJKLMNOPQ":A1$=A1$+A1$+A1$+A1$+A1$:A1$=A1$+A1$+A1$
14 DEF FNH(X)=INT(X/256)
16 DEF FNL(X)=X-256*FNH(X)
18 BL$=" ":C$=CHR$(.)
20 SA=780:SX=781:SY=782:SP=783:POKESA,1:POKESX,8:POKESY,1:SYS 65466
22 POKE53281,0:POKE53280,11:POKE650,128
24 PRINT"[147]"CHR$(142);:GOSUB 116
26 PRINT" CAN PLAY ALL CURRENT SIDPLAYER FILES"
28 PRINT" AS USED WITH KPLAY, MPLAY, SINGALONG"
30 PRINT" AND OTHER COMPARABLE SIDPLAYERS."
32 PRINT" USES SID MUSIC AND RELATED FILE WITH"
34 PRINT" [158].MUS (MUSIC FILES), [153]WITH..."
36 PRINT" [158].WDS (WORD FILES) [153]AND/OR..."
38 PRINT" [158].PIC (KOALA/DOODLE PICTURE FILES)"
40 PRINT " THE BASIC SIDPLAYER IS FROM COMPUTE'S"
42 PRINT " "CHR$(34)"ALL ABOUT THE COMMODORE 64, VOL. TWO"CHR$(34)
44 PRINT " BY CRAIG CHAMBERLAIN"
46 PRINT " [154][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
48 PRINT " HIT ANY KEY TO READ DIRECTORY[146][187]"
50 PRINT " [188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
52 PRINT "[151] (C)1986 OKAY TO COPY, MAY NOT BE SOLD"
54 SS=10752:HK=SS+274:PL=SS+297:DP=SS+471:SV=PEEK(55)+PEEK(56)*256:MA=0
56 GET A$:IF A$="" GOTO 56
58 REM ***** NEXT SCREEN PAGE
60 NP=0
62 PRINT"[147][158][213][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][201][157][157]"CHR$(148)"[192]"
64 FORA=1TO17:PRINT"[221]"SPC(12)"[221]"SPC(12)"[221]"SPC(11)"[221][157]"CHR$(148):NEXT
66 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][192][192][203][157][157]"CHR$(148)"[192]":GOSUB116
68 PRINT"[154]EXIT: F7 REPLAY: * [221]"
70 PRINT"[154]PLAY ONE:F1/[154]PLAY ALL:F3/[154]NEXT DISK:F5[221]":GOTO 132
72 PRINT"[147][158][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201][157][157]"CHR$(148)"[192]"
74 FORA=1TO9:PRINT"[221]"SPC(37)"[221][157]"CHR$(148):NEXT
76 PRINT"[171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][179][157][157]"CHR$(148)"[192]"
78 PRINT"[221] NOTES:F1/NEXTSONG:F3/MENU:F5/EXIT:F7[158][221][157]";CHR$(148)" [158]"
80 PRINT"[171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][179][157][157]"CHR$(148)"[192]"
82 FOR A=1 TO 5:PRINT"[221]"SPC(37)"[221][157]"CHR$(148):NEXT
84 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203][157][157]"CHR$(148)"[192]":GOSUB116:RETURN
86 REM ***** MUSIC STAFF DISPLAY
88 A=10496/64
90 POKE53269,31
92 POKE2040,A:POKE2041,A+1:POKE2042,A+2:POKE2043,A+2:POKE2044,A+2
94 POKE53287,1:POKE53288,1
96 POKESS+5,2:POKESS+6,7:POKESS+7,14
98 V=53248:POKEV,40:POKEV+1,111
100 POKEV+2,40:POKEV+3,152
102 POKEV+4,120:POKEV+5,0
104 POKEV+6,185:POKEV+7,0
106 POKEV+8,255:POKEV+9,0
108 PRINT"[155][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
110 FOR A=1 TO 7:IF A=4 THEN PRINT"[221]"SPC(36)"[221]":GOTO 114
112 PRINT"[171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][179]"
114 NEXT:PRINT"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]":RETURN
116 PRINT" [213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]"
118 PRINT" [221] [213][201][154][178][159][176][201] [187][159][178][201][154][178][213][201] V2.5[221]
120 [153]" (null) MID$RIGHT$CONT(null)OPEN(null)(null) SINWAIT OPEN-(null)CONT(null)(null) (null)
122 PRINT" [221] [202][203][154][177][159][173][203][188] [159][177] [154][177][202][203] [221]
124 [153]" (null) CONTTHE SIDPLAYER ART AND MUSIC REVIEW (null)
126 PRINT" [202][192][192][192][192][192][192][192][201] K[159]E[156]RMI[158]T [129]R. [149]W[150]O[152]O[153]D[154]A[155]L[153]L [213][192][192][192][192][192][192][192][192][203]"
128 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]":RETURN
130 REM ***** PRINTOUT DIR
132 CL=5:PRINT ""
134 GOTO 356
136 SYS9841:
138 REM ***** GET SONG TITLE
140 SYS9884:
142 LA=SV
144 PRINT"";:F1=FRE(0):F$="":F1=1024+(40*7)+1:V0=7:H0=1
146 POKEF1,PEEK(F1)+128
148 POKEF1,PEEK(F1)-128:F1=1024+(V0*40)+H0:POKEF1,PEEK(F1)+128
150 SYS10689:GET A$:IF A$="" THEN V0=V0+1:IF V0>23 THEN V0=7
152 IF A$="[145]" THEN V0=V0-1:IF V0<7 THEN V0=23
154 IF A$="" THEN H0=H0+13:IF H0>27 THEN H0=1
156 IF A$="[157]" THEN H0=H0-13:IF H0<1 THEN H0=27
158 IF A$="" THEN V0=7:H0=1
160 IF A$="[135]" GOTO 60
162 IF A$="[137]" THEN NP=NP+K:GOTO 62
164 IF A$="[134]" GOTO 196
166 IF A$="[136]" THEN POKE53280,14:POKE 53281,6:PRINT"[147][154]";:END
168 IF A$="*" THEN GOTO 184
170 IF A$=CHR$(13) GOTO 176
172 IF A$=CHR$(141) THEN GOSUB 220:CL=13:GOTO 146
174 IF A$<>"[133]" GOTO 148
176 POKEF1,PEEK(F1)-128
178 SYS9798:
180 POKE198,0:GOSUB 210:GOSUB 232:GOTO 136
182 REM ***** REPLAY LAST MUSIC
184 POKEF1,PEEK(F1)-128:SYS9798:
186 IF MA<SV GOTO 140
188 A$="":F$="FAKE.MUS":IF PIC THEN GOSUB 346:GOTO 192
190 IF WDS THEN WT=WA:GOSUB 318:HI=FNH(MA):LO=FNL(MA)
192 GOSUB 244:GOTO 136
194 REM ***** F3 PLAY ALL MUSIC
196 POKEF1,PEEK(F1)-128
198 FOR V0=7 TO 23:FOR H0=1 TO 27 STEP 13:F$="":F1=1024+(V0*40)+H0:LA=SV
200 SYS9798:
202 IF (PEEK(F1+54272)AND15)=CL THEN POKE198,0:GOSUB 210:GOSUB 232
204 SYS9841:
206 NEXT:NEXT:GOTO 136
208 REM ***** GET MUSIC FILENAME
210 F$="":FG=0:FOR X=F1+11 TO F1 STEP-1:A=PEEK(X):IF FG=0 THEN IF A=32 GOTO 214
212 FG=1:F$=CHR$(A+ABS(64*(A<32)))+F$:POKEX,A+128:POKEX+54272,1
214 NEXT:FOR X=F1+11 TO F1 STEP-1:IF PEEK(X)>128 THEN POKEX,PEEK(X)-128
216 NEXT:RETURN
218 REM ***** COLOR NAME
220 POKEF1,PEEK(F1)-128
222 FG=0:FOR X=F1+11 TO F1 STEP-1:A=PEEK(X):IF FG=0 THEN IF A=32 GOTO 226
224 FG=1:POKEX,A+128:POKEX+54272,(PEEK(X+54272)+8) AND 15
226 NEXT:FOR X=F1+11 TO F1 STEP-1:IF PEEK(X)>128 THEN POKEX,PEEK(X)-128
228 NEXT:RETURN
230 REM ***** LOAD MUSIC @FRE MEM
232 IF F$="" THEN RETURN
234 GOSUB 298:GOSUB 326
236 POKE SA,1:POKE SX,8:POKE SY,0:SYS 65466:F$=F$+".MUS":GOSUB 374
238 MA=LA:HI=FNH(MA):LO=FNL(MA)
240 POKE SA,0:POKE SX,LO:POKE SY,HI:SYS 65493:IF PEEK(SP)AND1 GOTO 380
242 REM ***** HOOK INTO INTERRUPT
244 SYS HK:POKE SX,LO:POKE SY,HI:SYS PL:F=PEEK(SX)+256*PEEK(SY):F$="":FS=F
246 IFPIC=1THENSYS9492::GOSUB353:GOTO264
248 IF PIC=2 THENPOKE53265,59:POKE53272,120:POKE56576,PEEK(56576)AND254:GOTO264
250 REM ***** PRINT CREDIT BLOCK
252 F$="":GOSUB72:PRINT"";SPC((40-LEN(T$))/2-1);T$
254 IF WDS=0 THEN GOSUB 86
256 PRINT"[154]";:P=-1:L=0
258 F=F+P+1:POKE113,FNL(F):POKE114,FNH(F)
260 SYS9760::P=PEEK(142):L=L+1:A=PEEK(F+P)
262 IFL<6THENIF A THENPRINT"";LEFT$(A1$,P+1);:IFMID$(A1$,P+1,1)<>C$GOTO258
264 WAIT 56320,16:POKE 198,0:POKE SS,7
266 REM ***** WAIT UNTIL FINISHED
268 SYS10689:IF PEEK(198) GOTO 284
270 IF WDS THEN GOSUB 406:GOTO 274
272 GOSUB 424
274 IF PEEK(SS)AND 7 GOTO 268
276 GOSUB 292:GOSUB294
278 POKEV+5,0:POKEV+7,0:POKEV+9,0
280 IF A$="[135]" THEN A$="":GOTO 60
282 RETURN
284 GETA$:POKE198,0:POKESS,0
286 IF A$="[133]"THENGOSUB294:T$="":F=FS:PI=0:WD=0:POKESS,7:GOTO252
288 IF A$="[136]"THENGOSUB292:GOSUB294:GOTO136
290 GOTO270
292 POKE53269,0:POKE54276,0:POKE54283,0:POKE54290,0:SYSDP:RETURN
294 SYS9696::RETURN
296 REM ***** LOAD WORD FILE
298 T$="":WD=0:OPEN1,8,8,F$+".WDS,P":GET#1,A$,B$:IF ST THEN CLOSE1:RETURN
300 CLOSE1:WD=1:WA=LA:T$=A$+B$:POKE 679,0
302 F$=F$+".WDS":POKE SA,1:POKE SX,8:POKE SY,0:SYS 65466:GOSUB 374
304 POKE SA,0:POKE SX,FNL(LA):POKE SY,FNH(LA):SYS 65493
306 IF PEEK(SP)AND1 GOTO 380
308 LA=PEEK(SX)+PEEK(SY)*256:WT=WA:FOR A=LA TO LA+5:POKE A,13:NEXT:LA=LA+5
310 F$=LEFT$(F$,LEN(F$)-4):POKE113,FNL(WA):POKE114,FNH(WA)
312 SYS9760::A=PEEK(142)
314 SYS9896::T$=T$+LEFT$(A1$,A)
316 WA=WA+A+1:WT=WA
318 POKE113,FNL(WT):POKE114,FNH(WT)
320 SYS9760::A=PEEK(142)
322 SYS9896::W2$=LEFT$(LEFT$(A1$,A)+BL$,38):WT=WT+A+1
324 RETURN
326 REM ***** CHECK FOR PICTURE
328 PIC=0:OPEN1,8,8,F$+".PIC":GET#1,A$,B$:CLOSE1:A=ASC(B$+C$)
330 IF A=96 THEN PIC=1:A=252:B=192:GOTO 336
332 IF A=92 THEN PIC=2:A=124:B=192:GOTO 336
334 RETURN
336 POKE834,B:POKE835,A:POKE679,55:LO=ASC(A$+C$):HI=ASC(B$+C$):A=LO+(HI*256)-2
338 HI=FNH(A):LO=FNL(A)
340 POKE SA,1:POKE SX,8:POKE SY,1:SYS 65466:F$=F$+".PIC":GOSUB 374
342 POKE SA,0:SYS 65493:IF PEEK(SP)AND1 GOTO 380
344 F$=LEFT$(F$,LEN(F$)-4)
346 IF PIC=1 OR WDS=0 THEN RETURN
348 WT=WA:GOSUB 318:T$=LEFT$(LEFT$(BL$,(40-LEN(T$))/2)+T$+BL$,40)
350 A1$=LEFT$(T$+BL$,80)+LEFT$(A1$,255-80)
352 GOSUB 420:SYS10264:RETURN
353 IF WDS THEN SYS10277:GOTO 348
354 RETURN
355 REM ***** WHAT FILES ON DISK
356 FOR F=1 TO 4:POKE 580+F,ASC(MID$(".MUS",F)):NEXT
358 OPEN 1,8,0,"$0:*=P":GET #1,S$,S$:PRINT "";:TB=1:K=0
360 IF NP>0 THEN POKE2,5:FOR A=1 TO NP:SYS9395::NEXT
362 POKE2,0:SYS9395::TB=TB+13:PRINT TAB(TB);:IF TB=40 THEN TB=1:PRINT "";
364 IF ST=0 THEN K=K+1:IF K<51 GOTO 362
366 CLOSE 1:SYS 65484:IF K=0 THEN P$="NO MUSIC ON DISK!":GOTO 386
368 IFK=>51THENPRINT""SPC(12)"F2 - NEXT PAGE"
370 GOTO 140
372 REM ***** MUSIC FILE LOADER
374 FOR F=1 TO LEN(F$):POKE 584+F,ASC(MID$(F$,F)):NEXT
376 POKE SA,LEN(F$):POKE SX,73:POKE SY,2:SYS 65469:RETURN
378 REM ***** ERROR MESSAGES
380 P=PEEK(SA):P$="ERROR: ":IF P=4 THEN P$=P$+"FILE NOT FOUND":GOTO 386
382 IF P=5 THEN P$=P$+"DEVICE NOT PRESENT":GOTO 386
384 P$=P$+STR$( ST ):GOTO 386
386 GOSUB294
388 A=LEN(P$):S=19-(A/2):A$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
390 PRINT "[147]";SPC(S);"[213]";LEFT$(A$,A);"[201]"
392 PRINT SPC(S);"[221]";P$;"[221]"
394 PRINT SPC(S);"[202]";LEFT$(A$,A);"[203]"
396 PRINT SPC(20-4);"[145][179]RETURN[171]":FOR B=1 TO 500:NEXT
398 PRINT SPC(20-4);"[145][192][192][192][192][192][192][192][192]":FOR B=1 TO 500:NEXT
400 GET A$:IF A$<>CHR$(13) GOTO 396
402 RUN
404 REM ***** DISPLAY WORDS
406 IF PEEK(SS+1)<1 THEN RETURN
408 W1$=W2$:POKE113,FNL(WT):POKE114,FNH(WT)
410 SYS9760::A=PEEK(142)
412 SYS9896::WT=WT+A+1
414 W2$=LEFT$(LEFT$(A1$,A)+BL$,38)
416 IF PIC=0 THEN PRINT"[153]";W1$:PRINT"";W2$:POKE SS+1,0:RETURN
418 A1$=W1$+" "+W2$+" "+LEFT$(A1$,255-80)
420 POKE 2,80:SYS10187
422 POKE SS+1,0:RETURN
424 REM ***** MUSIC ONLY DISPLAY
426 SYS10031
428 RETURN
430 :
432 END